package util.content;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ContentCapture {

	// 抓取字符串中的有效内容部分
	public String getContent(String content) {
		String finalContent = "";
		String contentPart = null;
		String contentWithSpace = null;
		String contentWithoutSpace = null;
		RandomContent rc = new RandomContent();
		FilterSpace fs = new FilterSpace();
		System.out.println(contentRex);
		Pattern p = Pattern.compile(contentRex);
		Matcher m = p.matcher(content);
		while (m.find()) {
			// 拿到了内容
			contentWithSpace = m.group(2);
			String reAskString = reAskString = m.group(3);
			// 用正则去掉前面和后面无用的空格 空行
			Pattern patternDelBlank = Pattern.compile("[\u4E00-\u9FA5\\w]{1}");
			Matcher matcherDelBlank = patternDelBlank.matcher(contentWithSpace);
			//这里还是用if判断一下，极少数只能一些符号字符的字符串是匹配不上的
			if(matcherDelBlank.find()){
			// 找到字符串中第一个中文、英文、数字的位置，用它来截取出字串
			contentWithoutSpace = contentWithSpace.substring(matcherDelBlank.start(), contentWithSpace.length()).trim();
			}
			// System.out.println(contentWithoutSpace);
			// 提取追问内容,追问和回答如果不一样的格式可以使用正则表达式的或关系
			Pattern reAskPattern = Pattern.compile(reAskRex);
			Matcher reAskmatcher = reAskPattern.matcher(reAskString);
			while (reAskmatcher.find()) {
				//"\n   "是为了格式，每个新的追问追答新起一行并开头空4个空格
				contentWithoutSpace = contentWithoutSpace + "\n    补充问答：" +fs.trimSpace(reAskmatcher.group(2));

			}
			// 调用乱序对象，把内容写入
			rc.contentAdd(contentWithoutSpace + "\n" + "<hr/>\n");
		}
		// 打乱顺序拿出
		contentWithoutSpace = rc.getWycContent();
		// 每段内容加一个换行和分割线
		finalContent = finalContent + contentWithoutSpace;
		rc.clear();
		return finalContent;
	}

	// 去掉字符串中的指定部分
	public String del(String content) {
		String contentWithoutDel = null;
		contentWithoutDel = content.replaceAll(delRex, "");
		return contentWithoutDel;
	}

	String reAskRex = null;

	public void setReAskRex(String reAskRex) {
		this.reAskRex = reAskRex;
	}

	String contentRex = null;

	public void setContentRex(String contentRex) {
		this.contentRex = contentRex;
	}

	String delRex = null;

	public void setDelRex(String delRex) {
		this.delRex = delRex;
	}
}
